package de.general;

public class ClaseAbstracta {
	
	public abstract class Figura{
		
		int x,y;
		public void mostrarOrigen(){
			System.out.println("X = "+x+" Y = "+y);
		}
		public abstract double area();
		public abstract void mostrarNombre();

	} // fin class figura 

	
	public class Triangulo extends Figura {
		//Atributen
		protected int base, altura;

		//Konstruktor
		public Triangulo(int ba, int al) { this.base = ba; this.altura = al; }

		//Methoden
		public double area() { return base*altura/2; }
		public void mostrarNombre() { System.out.println("Triangulo"); }
		
	}// fin de la Clase Triangulo
	
	
	public class Cuadrado extends Figura{
		//Atributen
		protected int lado;
		
		//konstruktor
		public Cuadrado(int lado) { this.lado = lado; }
		
		//Methoden
		public double area() { return lado*lado; }
		public void mostrarNombre() { System.out.println("Cuadrado");		} 
		
	}// fin de la Clase cuadrado
	
	
	
	public static void main(String[] args) {

		Figura f1;
		Triangulo t1;
		Cuadrado c1;
		
		
//		f1 = new Figura(); // Error, no se puede instanciar una clase abtracta
//		t1 = new Triangulo(4,3);
//		t1.mostrarOrigen();
//		t1.mostrarNombre();
//		
//		f1 = t1;
//		f1.mostrarNombre();
//		System.out.println("Area del triangulo: "+ f1.area());
//		
//		c1 = new Cuadrado(5);
//		f1 = c1;
//		System.out.println("Area del Cuadrado: " + f1.area());
		
		
		
	}

}
